Modern computing networks utilize public key certificates to establish trust and to secure communications between parties. Generally, a public key certificate binds a public key to a named entity, where the named entity is assumed to possess a private key corresponding to the public key. A signature or assertion which is generated using the private key can therefore be expected to have been generated by the named entity.
Certificate-based communication (e.g., via the Transport Layer Security (TLS) protocol) relies on certificates issued by trusted certificate authorities. The certificates conform to X.509 standards, which specify fields and extensions intended to control certificate usage and provide security to communications based thereon. An organization may receive certificates from external or internal certificate authorities, may store received certificates, and may deploy stored certificates to service nodes. The service nodes use the deployed certificates to establish communication with other services and end-users. End users and other services that establish communication with a service node can, with high probability, prove that the service node is the entity named in the public key certificate and therefore in possession of the corresponding private key as a means of establishing trust.
Management of an organization's certificate pipeline is challenging, especially in a distributed architecture and at scale. A certificate pipeline presents several entry points for inadvertent errors, corruption and attack, each of which should be monitored and configured to implement remedial processes. Pipeline management should also address evolving threats and standards, which may require regular re-evaluation of monitoring processes and of previously-stored certificates.
Efficient, effective and verifiable systems to manage public key certificates are desired.